package xyz.heyaoshare.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;

/**
 * 类反射工具类
 * @author YueHe
 * @version 0.0.1
 * @since 2025/6/25 下午3:32
 */
@Slf4j
public class ClazzUtils {


    /**
     * 根据字段名称获取对象的属性值
     *
     * @param item       要获取字段值的对象
     * @param fieldName  字段名称
     * @return 字段对应的值，如果对象或字段名称为空，则返回null；如果对象没有该字段，则返回null
     */
    public static Object getFieldValue(Object item, String fieldName) {
        if (item == null || StrUtils.isBlank(fieldName)) {
            return null;
        }

        BeanWrapper wrapper = new BeanWrapperImpl(item);
        if (wrapper.isReadableProperty(fieldName)) {
            return wrapper.getPropertyValue(fieldName);
        }
        return null;
    }

}